package io.github.wslxm.springbootplus2.manage.login.strategy.service;

import io.github.wslxm.springbootplus2.manage.login.model.dto.LoginDTO;
import io.github.wslxm.springbootplus2.manage.sys.model.entity.SysUser;

/**
 * 登录策略类
 * <p>
 * </P>
 *
 * @author wangsong
 * @version 1.0.0
 * @mail 1720696548@qq.com
 * @date 2022/10/15 0015 18:11
 */
public interface LoginStrategy {

    /**
     * 通过登录参数-获取用户信息
     *
     * @param dto 登录参数
     */
    SysUser getSysUser(LoginDTO dto);

    /**
     * 登录, 需要先调用 getSysUser 获取到登录账号
     *
     * @param sysUser 账号信息
     * @param dto     登录参数
     * @return {@link SysUser}
     */
    void login(LoginDTO dto, SysUser sysUser);

}
